// API配置文件
// 检查当前环境
const isNode = typeof process !== 'undefined' && process?.release?.name === 'node'

// 获取环境变量的函数
const getEnvVar = (name: string, defaultValue: string) => {
  if (isNode) {
    // Node.js环境
    return process.env[name] || defaultValue
  } else {
    // 浏览器/Vite环境
    return (import.meta as any)?.env?.[name] || defaultValue
  }
}

const config = {
  // 开发环境配置
  development: {
    // 确保开发环境使用本地API地址，而非测试环境的api.oa.com
    API_BASE_URL: getEnvVar('VITE_API_BASE_URL', 'http://127.0.0.1:8000'),
    FRONTEND_URL: getEnvVar('VITE_FRONTEND_URL', 'http://127.0.0.1:8080'),
    FRONTEND_HOST: getEnvVar('VITE_FRONTEND_HOST', '127.0.0.1'),
    FRONTEND_PORT: getEnvVar('VITE_FRONTEND_PORT', '8080'),
  },
  test: {
    API_BASE_URL: getEnvVar('VITE_API_BASE_URL', 'http://api.oa.com'),
    FRONTEND_URL: getEnvVar('VITE_FRONTEND_URL', 'http://oa.com'),
    FRONTEND_HOST: getEnvVar('VITE_FRONTEND_HOST', 'oa.com'),
    FRONTEND_PORT: getEnvVar('VITE_FRONTEND_PORT', '80'),
  },
  production: {
    API_BASE_URL: getEnvVar('VITE_API_BASE_URL', 'http://oa2-api.jinrilvsi.com'),
    FRONTEND_URL: getEnvVar('VITE_FRONTEND_URL', 'http://oa2.jinrilvsi.com'),
    FRONTEND_HOST: getEnvVar('VITE_FRONTEND_HOST', 'oa2.jinrilvsi.com'),
    FRONTEND_PORT: getEnvVar('VITE_FRONTEND_PORT', '80'),
  },
}

// 根据环境变量获取对应配置
let env = 'development'
if (isNode) {
  env = process.env.NODE_ENV || 'development'
} else {
  // 优先使用 Vite 的模式，如果没有则使用默认的 development
  env = (import.meta as any)?.env?.MODE || 'development'
}

export default {
  ...(config as any)[env],
  // 环境名称
  ENV: env,
  // 是否是开发环境
  IS_DEV: env === 'development',
  // 是否是测试环境
  IS_TEST: env === 'test',
  // 是否是生产环境
  IS_PROD: env === 'production',
}
